<?php
/*
Author: Nicolas Zdanovicz
Date 20140325
User Data Access Class
*/
class DAOPromocion{

    public static function getById($id){
        
         $db = getPDO();
         $sql = "select * from promocion where id = ?";
         $stmt = $db->prepare($sql);
         $ok = $stmt->execute(array($id));
         $obj = $stmt->fetchObject();
         
         $prm = null;
         if($obj!=null){
             $prm= DAOPromocion::mapValues($obj);
         }
         else{
            throw new ENoDataFound("No se encontro la promocion con el id ".$id);
         }
         
         return $prm;
    }
    
    public static function deleteById($id){
    
    	$db = getPDO();
    	$sql = "delete from promocion where id = ?";
    	$stmt = $db->prepare($sql);
    	$ok = $stmt->execute(array($id));
    	return;
    }    



    public static function getAll(){
         
         $db = getPDO();
         $sql = "select * from promocion ";
         $stmt = $db->prepare($sql);
         $ok = $stmt->execute();
         $result = $stmt->fetchAll(\PDO::FETCH_OBJ);
         $arrResult = array();    
        
         foreach($result as $row){             
             array_push($arrResult,DAOPromocion::mapValues($row));
         }
         
        return $arrResult;
    }
    
    public static function update($promocion){
    
    	$db = getPDO();
    	$sql = "update promocion set descripcion = ?, creditos = ?, precio=?, libre = ?, meses = ? where id =?";
    	$stmt = $db->prepare($sql);
    	$ok = $stmt->execute(array(
    			$promocion->getDescripcion(),
    			$promocion->getCreditos(),
    			$promocion->getPrecio(),
    			$promocion->getLibre(),
    			$promocion->getMeses(),
    			$promocion->getId()));
    	return;
    }
    
    
    
    
    public static function add($promocion){
        
         $db = getPDO();
          $sql = "insert into promocion (descripcion,creditos,precio,libre,meses) values ";
          $sql.= "(?,?,?,?,?)";
          $stmt = $db->prepare($sql);
          $ok = $stmt->execute(array($promocion->getDescripcion(),
                                     $promocion->getCreditos(),
                                     $promocion->getPrecio(),
          							 $promocion->getLibre(),
          							 $promocion->getMeses()));
        $promocion->setId($db->lastInsertId());
        
         return $promocion;        
    }
     
    private static function mapValues($obj){
        $prm = new Promocion();
        $prm->setId($obj->id);
        $prm->setDescripcion($obj->descripcion);
        $prm->setCreditos($obj->creditos);
        $prm->setPrecio($obj->precio);
        $prm->setLibre($obj->libre);
        $prm->setMeses($obj->meses);
        
        return $prm;
    }
    
}
?>